package com.jzo2o.customer.service;

import com.jzo2o.common.model.PageResult;
import com.jzo2o.customer.model.domain.AgencyCertificationAudit;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jzo2o.customer.model.dto.request.AgencyCertificationAuditAddReqDTO;
import com.jzo2o.customer.model.dto.request.AgencyCertificationAuditPageQueryReqDTO;
import com.jzo2o.customer.model.dto.response.AgencyCertificationAuditResDTO;

/**
 * <p>
 * 机构认证审核表 服务类
 * </p>
 *
 * @author jianghaijun
 * @since 2025-10-23
 */
public interface IAgencyCertificationAuditService extends IService<AgencyCertificationAudit> {


    /**
     * 机构端 - 提交服务认证
     * @param agencyCertificationAuditAddReqDTO 认证参数
     */
    void submit(AgencyCertificationAuditAddReqDTO agencyCertificationAuditAddReqDTO);

    /**
     * 查询最新的驳回原因
     * @return 驳回原因
     */
    String rejectReason();


    /**
     * 审核机构认证分页查询
     * @param agencyCertificationAuditPageQueryReqDTO 分页参数
     * @return 返回分页数据
     */
    PageResult<AgencyCertificationAuditResDTO> page(AgencyCertificationAuditPageQueryReqDTO agencyCertificationAuditPageQueryReqDTO);

    /**
     * 审核机构认证信息
     * @param id 认证id
     * @param certificationStatus 认证状态
     * @param rejectReason 驳回原因
     */
    void audit(Long id, Integer certificationStatus, String rejectReason);
}
